#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <string.h>

int main()
{
    int fd = open("log.txt", O_CREAT | O_WRONLY | O_APPEND, 0666);
    
    // 输出重定向
    dup2(fd, 1);

    printf("hello fd : %d\n", fd);
    fprintf(stdout, "hello fd : %d\n", fd);
    fputs("hello world\n", stdout);

    const char *message = "hello frite\n";
    fwrite(message, 1, strlen(message), stdout);
    
    
    
    
    
    
    
    
    
    
    
    
    
    //char buffer[128];
    //ssize_t s = read(0, buffer, strlen(buffer));
    //if(s > 0)
    //{
    //    buffer[s - 1] = 0;
    //    printf("%s\n", buffer);
    //}



    //umask(0);
    //int fd1 = open("log.txt", O_WRONLY | O_CREAT | O_TRUNC | O_APPEND, 0666);    
    //if(fd1 < 0)
    //{
    //    perror("open");
    //    return 1;
    //}
    //printf("fd1 : %d\n", fd1);

    //const char *message = "helloworld\n";
    //write(fd1, message, strlen(message));


    //close(fd1);
    return 0;
}




























//#define ONE (1 << 0)
//#define TWO (1 << 1)
//#define THREE (1 << 2)
//#define FOUR (1 << 3)
//#define FIVE (1 << 4)
//
//
//// code 1
//void PrintTest(int flags)
//{
//    if(flags & ONE)
//    {
//        printf("one\n");
//    }
//    if(flags & TWO)
//    {
//        printf("two\n");
//    }
//    if(flags & TWO)
//    {
//        printf("two\n");
//    }
//    if(flags & TWO)
//    {
//        printf("two\n");
//    }
//    if(flags & THREE)
//    {
//        printf("three\n");
//    }
//}
//
//int main()
//{
//
//    return 0;
//}
